home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_include / LINUX / AMIFD.H < prev    next >
C/C++ Source or Header  |  1999-09-17  |  2KB  |  62 lines

  1. #ifndef _AMIFD_H
  2. #define _AMIFD_H
  3.  
  4. /* Definitions for the Amiga floppy driver */
  5.  
  6. #include <linux/fd.h>
  7.  
  8. #define FD_MAX_UNITS    4    /* Max. Number of drives */
  9. #define FLOPPY_MAX_SECTORS    22    /* Max. Number of sectors per track */
  10.  
  11. #ifndef ASSEMBLER
  12.  
  13. struct fd_data_type {
  14.     char *name;            /* description of data type */
  15.     int sects;            /* sectors per track */
  16. #ifdef __STDC__
  17.     int (*read_fkt)(int);
  18.     void (*write_fkt)(int);
  19. #else
  20.     int (*read_fkt)();        /* read whole track */
  21.     void (*write_fkt)();        /* write whole track */
  22. #endif
  23. };
  24.  
  25. /*
  26. ** Floppy type descriptions
  27. */
  28.  
  29. struct fd_drive_type {
  30.     unsigned long code;        /* code returned from drive */
  31.     char *name;            /* description of drive */
  32.     unsigned int tracks;    /* number of tracks */
  33.     unsigned int heads;        /* number of heads */
  34.     unsigned int read_size;    /* raw read size for one track */
  35.     unsigned int write_size;    /* raw write size for one track */
  36.     unsigned int sect_mult;    /* sectors and gap multiplier (HD = 2) */
  37.     unsigned int precomp1;    /* start track for precomp 1 */
  38.     unsigned int precomp2;    /* start track for precomp 2 */
  39.     unsigned int step_delay;    /* time (in ms) for delay after step */
  40.     unsigned int settle_time;    /* time to settle after dir change */
  41.     unsigned int side_time;    /* time needed to change sides */
  42. };
  43.  
  44. struct amiga_floppy_struct {
  45.     struct fd_drive_type *type;    /* type of floppy for this unit */
  46.     struct fd_data_type *dtype;    /* type of floppy for this unit */
  47.     int track;            /* current track (-1 == unknown) */
  48.     unsigned char *trackbuf;    /* current track (kmaloc()'d */
  49.  
  50.     int blocks;            /* total # blocks on disk */
  51.  
  52.     int changed;        /* true when not known */
  53.     int disk;            /* disk in drive (-1 == unknown) */
  54.     int motor;            /* true when motor is at speed */
  55.     int busy;            /* true when drive is active */
  56.     int dirty;            /* true when trackbuf is not on disk */
  57.     int status;            /* current error code for unit */
  58. };
  59. #endif
  60.  
  61. #endif
  62.